package com.hctforgreen.greenservice.utils;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;

import android.content.Context;

import com.hctforgreen.greenservice.R;

/**
 * raw文件夹 模拟数据Util
 * 
 * @author Tallen Zhai
 * 
 */
public class HctBackTestJsonRawUtil {
	/**
	 * 1、所有系列信息
	 * 
	 * @param context
	 * @return
	 */
	public String getAllSeries(Context context) {
		return getJsonString(context, R.raw.get_all_series);
	}

	/**
	 * 2、所有机型信息
	 * 
	 * @param context
	 * @return
	 */
	public String getAllMachines(Context context) {
		return getJsonString(context, R.raw.get_all_machines);
	}

	/**
	 * 3、所有资料类别信息
	 * 
	 * @param context
	 * @return
	 */
	public String getAllBooktypes(Context context) {
		return getJsonString(context, R.raw.get_all_book_types);
	}

	/**
	 * 4、根据系列ID获取资料
	 * 
	 * @param context
	 * @return
	 */
	@Deprecated
	public String getBooksBySeriesId(Context context) {
		return getJsonString(context, R.raw.get_books_by_series_id);
	}

	/**
	 * 4、获取所有资料
	 * 
	 * @param context
	 * @return
	 */
	public String getAllBooks(Context context) {
		// "childSeriesId":"408d37bc45d0d07a0145e4c50d1c0f65",
		// "childSeriesName":"D模块",
		// "seriesId":"408d37bc45d0d07a0145e4c481e50f63",
		return getJsonString(context, R.raw.get_all_books);
	}

	/**
	 * 6、用户登录action
	 * 
	 * @param context
	 * @return
	 */
	public String appLogin(Context context) {
		return getJsonString(context, R.raw.app_login);
	}

	/**
	 * 7、获取开机密码
	 * 
	 * @param context
	 * @return
	 */
	public String getBootPwd(Context context) {
		return getJsonString(context, R.raw.get_boot_pwd);
	}

	/**
	 * FIXME
	 * 
	 * @param context
	 * @return
	 */
	public String defaultResult(Context context) {
		return getJsonString(context, R.raw.default_result);
	}

	/**
	 * FIXME
	 * 
	 * @param context
	 * @return
	 */
	@Deprecated
	public String getVersionCode(Context context) {
		return getJsonString(context, R.raw.get_version_code);
	}

	/**
	 * 10、根据用户Id获取反馈信息
	 * 
	 * @param context
	 * @return
	 */
	public String getFeedBackJsonByPersonId(Context context) {
		return getJsonString(context, R.raw.get_feedback_json_by_person_id);
	}

	/**
	 * 11、根据反馈Id和图片名称获取图片
	 * 
	 * @param context
	 * @return
	 */
	public String getFeedbackPicByName(Context context) {
		return getJsonString(context, R.raw.get_feedback_json_by_person_id);
	}

	/**
	 * 12、获取最新通知列表
	 * 
	 * @param context
	 * @return
	 */
	public String getRecentMessages(Context context) {
		return getJsonString(context, R.raw.get_recent_messages);
	}

	/**
	 * 13、获取通知列表
	 * 
	 * @param context
	 * @return
	 */
	public String getMessagesFromDate(Context context) {
		return getJsonString(context, R.raw.get_messages_from_date);
	}

	/**
	 * 14、根据通知Id获取通知详情
	 * 
	 * @param context
	 * @return
	 */
	public String getMessageById(Context context) {
		return getJsonString(context, R.raw.get_message_by_id);
	}

	/**
	 * 16、检查App版本
	 * 
	 * @param context
	 * @return
	 */
	public String checkVersion(Context context) {
		return getJsonString(context, R.raw.check_version);
	}

	/**
	 * 获取Gif图片id及说明文字
	 * 
	 * @param context
	 * @return
	 */
	public String getLoadingInfo(Context context) {
		return getJsonString(context, R.raw.get_loading_info);
	}

	public String getDataVersionCode(Context context) {
		return getJsonString(context, R.raw.get_data_version_code);
	}

	/**
	 * 调试维修栏目信息
	 * 
	 * @param context
	 * @return
	 */
	public String getAllColumns(Context context) {
		return getJsonString(context, R.raw.get_all_columns);
	}

	/**
	 * 支持机型
	 * 
	 * @param context
	 * @return
	 */
	public String getContentByInfoType(Context context) {
		return getJsonString(context, R.raw.get_content_by_info_type);
	}

	/**
	 * 获取机型对应资料阅读数
	 * 
	 * @param context
	 * @return
	 */
	public String getBookClick(Context context) {
		return getJsonString(context, R.raw.get_book_click);
	}

	private String getJsonStringByLineReading(Context context, int rawId) {

		String sJson = "";

		try {

			InputStream in = context.getResources().openRawResource(rawId);

			InputStreamReader isr = new InputStreamReader(in, "utf-8");
			BufferedReader br = new BufferedReader(isr);

			String line;
			while ((line = br.readLine()) != null) {
				sJson += line;
			}
			in.close();
			isr.close();
			br.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return sJson;
	}

	private String getJsonString(Context context, int rawId) {

		StringBuffer sJson = new StringBuffer();

		try {

			InputStream in = context.getResources().openRawResource(rawId);
			InputStreamReader isr = new InputStreamReader(in, "utf-8");
			BufferedReader br = new BufferedReader(isr);

			char[] buf = new char[1024];
			int len = 0;
			while ((len = br.read(buf)) != -1) {
				sJson.append(new String(buf, 0, len));
			}
			in.close();
			isr.close();
			br.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return sJson.toString();
	}
}
